The IEEE standard, “IEEE 1394-2000 Standard For A High Performance Serial Bus.” Draft ratified in 2000, is an international standard for implementing an inexpensive high-speed serial bus architecture which supports both asynchronous and isochronous format data transfers. Isochronous data transfers are real-time transfers which take place such that the time intervals between significant instances have the same duration at both the transmitting and receiving applications. Each packet of data transferred isochronously is transferred in its own time period. An example of an ideal application for the transfer of data isochronously would be from a video recorder to a television set. The video recorder records images and sounds and saves the data in discrete chunks or packets. The video recorder then transfers each packet, representing the image and sound recorded over a limited time period, during that time period, for display by the television set. The IEEE 1394-2000 serial bus architecture provides multiple channels for isochronous data transfer between applications. A six bit channel number is broadcast with the data to ensure reception by the appropriate application. This allows multiple applications to simultaneously transmit isochronous data across the bus structure. Asynchronous transfers are traditional data transfer operations which take place as soon as possible and transfer an amount of data from a source to a destination.
The IEEE 1394-2000 standard provides a high-speed serial bus for interconnecting digital devices thereby providing a universal I/O connection. The IEEE 1394-2000 standard defines a digital interface for the applications thereby eliminating the need for an application to convert digital data to analog data before it is transmitted across the bus. Correspondingly, a receiving application will receive digital data from the bus, not analog data, and will therefore not be required to convert analog data to digital data. The cable required by the IEEE 1394-2000 standard is very thin in size compared to other bulkier cables used to connect such devices. Devices can be added and removed from an IEEE 1394-2000 bus while the bus is active. If a device is so added or removed the bus will then automatically reconfigure itself for transmitting data between the then existing nodes. A node is considered a logical entity with a unique address on the bus structure. Each node provides a configuration ROM, a standardized set of control registers and its own address space. Because of these advantages the IEEE 1394-2000 standard provides for a unique networking structure that is capable of incorporating audio/video devices, media play/record devices, computing devices and display devices.
The IEEE 1394-2000 standard defines a protocol as illustrated in FIG. 1. This protocol includes a serial bus management block 10 coupled to a transaction layer 12, a link layer 14 and a physical layer 16. The physical layer 16 provides the electrical and mechanical connection between a device or application and the IEEE 1394-2000 cable. The physical layer 16 also provides arbitration to ensure that all devices coupled to the IEEE 1394-2000 bus have access to the bus as well as actual data transmission and reception. The link layer 14 provides data packet delivery service for both asynchronous and isochronous data packet transport. This supports both asynchronous data transport, using an acknowledgement protocol, and isochronous data transport, providing real-time guaranteed bandwidth protocol for just-in-time data delivery. The transaction layer 12 supports the commands necessary to complete asynchronous data transfers, including read, write and lock. The transaction layer 12 also provides a path for isochronous management data to be transferred to the serial bus management block 10 via read operations with isochronous control compare-swap registers. The serial bus management block 10 contains an isochuonous resource manager for managing isochronous data transfers. The serial bus management block 10 also provides overall configuration control of the serial bus in the form of optimizing arbitration timing, guarantee of adequate electrical power for all devices on the bus, assignment of the cycle master, assignment of isochronous channel and bandwidth resources and basic notification of errors.
A diverse range of products can be implemented with the ability to connect to an IEEE 1394-2000 serial bus network. These devices can have capabilities and functionality ranging from very simple to very complex. Specifically, a variety of audio/video devices, media play/record devices and computing/display devices are capable of being linked together over an IEEE 1394-2000 serial bus networking structure to support asynchronous and isochronous data transfers between the devices.
The IEEE 1394-2000 cable environment is a network of nodes connected by point-to-point links, including a port on each node's physical connection and the cable between them. The physical topology for the cable environment of an IEEE 1394-2000 serial bus is a non-cyclic network of multiple ports, with finite branches. The primary restriction on the cable environment is that nodes must be connected together without forming any closed loops.
Each node on the IEEE 1394-2000 bus structure has a 16 bit node ID. The node ID is the address that is used for data transmission on the data link layer. This allows address space for potentially up to 64K nodes on the bus structure. The node ID is divided into two smaller fields: the higher order 10 bits specify a bus ID and the lower order 6 bits specify a physical ID. The bus ID is assigned by a root node and the physical ID is assigned during a self identify sequence upon reset of the bus. Each physical ID field is unique within a single IEEE 1394-2000 bus, but the physical ID field is not a fixed value for each node itself. The physical ID field is fixed for the position of the node within the bus structure. If a device is moved from one position in the IEEE 1394-2000 bus to another position within the same IEEE 1394-2000 bus, the device will have a different node ID because its physical ID will have a different value when in the new position. Within each of the bus ID and physical ID fields a value of all logical “1”s is reserved for special purposes. Accordingly, this addressing scheme provides for up to 1023 busses, each with 63 independently addressable nodes.
Each IEEE 1394-2000 compatible device includes a node unique ID which is a 64 bit number saved within a configuration read-only memory (ROM) of the device. The node unique ID is permanent for each device and does not depend on the position of the device within an IEEE 1394-2000 bus. The node unique ID is not used for addressing of data transmissions on the data link layer.
A bus reset occurs when the bus is somehow reconfigured, either by the removal of a node from the bus or the addition of a node to the bus or when a device attached to the bus is powered off. When a bus reset occurs, all nodes are forced into a special state that clears all topology information and starts a next phase. After a bus reset, the only information known to a node is whether the node is a branch node, a leaf node or an isolated node. A branch node has more than one directly connected neighbors A leaf node has only a single neighbor. An isolated node is unconnected. After a bus reset, a tree identification process is performed. During the tree identification process, the general network topology is determined and translated into a tree. One node within the network is designated as a root node and all of the physical connection are associated with a direction pointing towards the root node. From each port it is determined if there is a connection and if the connection is to a child or parent node. The direction is set by labeling each connected port as either a parent port or a child port. A parent port is a port connected to a node further from the root than the reporting node. From these relationships, the root node determines the physical topology of the devices connected to the IEEE 1394-2000 serial bus network.
After the tree identification process, a self identifying process is performed. During the self identifying process, each node connected to the IEEE 1394-2000 serial bus network selects a unique physical ID, in order, and transmits that physical ID and other management information to the other nodes on the bus. The physical ID is a number equal to the count of the number of times since the reset event that a node has passed through the state of receiving self identifying information before having its own opportunity to send self identifying information. This self identifying process allows a node connected to the IEEE 1394-2000 serial bus network to be aware of the other nodes connected to the bus.
Speech recognition systems are known which permit a user to interface with a computer system using spoken language. The speech recognition system receives spoken input from the user, interprets the input, and then translates the input into a form that the computer system understands.
Speech recognition systems typically recognize spoken words or utterances based upon an acoustic model of a person who is speaking (the speaker). Acoustic models are typically generated based upon samples of speech. When the acoustic model is constructed based upon samples of speech obtained from a number of persons rather than a specific speaker, this is called speaker-independent modeling. When a speaker-independent model is then modified for recognizing speech of a particular person based upon samples of that person's speech, this is called adaptive modeling. When a model is constructed based solely on the speech of a particular person, this is timed speaker-dependent modeling.
Speaker-independent modeling generally enables a number of speakers to interface with the same recognition system without having obtained prior samples of the speech of the particular speakers. In comparison to speaker-independent modeling, adaptive modeling and speaker-dependent modeling generally enable a speech recognition system to more accurately recognize a speaker's speech, especially if the speaker has a strong accent, has a connection which produces unusual channel characteristics or for some other reason is not well modeled by speaker independent models.
Speech recognition systems are known which provide a telephonic interface between a caller and a customer service application. For example, the caller may obtain information regarding flight availability and pricing for a particular airline and may purchase tickets utilizing spoken language and without requiring assistance from an airline reservations clerk. Such customer service applications are typically intended to be accessed by a diverse population of callers and with various background noises. In such applications, it would be impractical to ask the callers to engage in a training session prior to using the customer service application. Accordingly, an acoustic model utilized for such customer service applications must be generalized so as to account for variability in the speakers. Thus, speaker-independent modeling is utilized for customer service applications. A result of using speaker-independent modeling is that the recognition system is less accurate than may be desired. This is particularly true for speakers with strong accents and those who have a phone line which produces unusual channel characteristics.
Natural language interpreters are well known and used for a variety of applications. One common use is for an automated telephone system. It will be apparent to those of ordinary skill in the art that these techniques can and have been applied to a variety of other uses. For example, one currently can use such a system to purchase travel tickets, to arrange hotel reservations, to trade stock, to find a telephone number or extension, among many other useful applications.
For a natural language interpreter used in conjunction with a speech recognition system, the natural language interpreter is provided the speech recognizer's best determination of each word resulting from the recognition operation. A speech recognizer ‘listens’ to a user's spoken words, determines what those words are and presents those words in a machine format to the natural language interpreter. As part of the recognition operation, each word is provided a word confidence score which represents the confidence associated with each such word that the speech recognizer has for the accuracy of its recognition. Thus, it is generally considered useful to take into account the accent or speech patterns of a wide variety of users. A score is generated and associated with each word in the recognition step. Using the scores for each individual word is not entirely satisfactory because that collection of scores does not relate to the meaning the speaker intends to convey. If a single word has a very low word confidence score, the user may be required to re-enter the request.
Voice recognition techniques are currently used to enter data into a document being generated by the user on a computer system. For example, a voice recognition application program is available from Dragon Systems, Inc., which enables a user to enter text into a written document by speaking the words to be entered into a microphone attached to the user's computer system. The application interprets the spoken words and translates them into typographical characters which then appear in the written document displayed on the user's computer screen.
Currently, there is a lack of a method or system which allows a user to control one or more devices within a network of devices through natural language or spoken commands. There is also currently a lack of a method or system which allows a user to obtain information from one or more devices within a network of devices through natural language or spoken commands.